﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CAGFIP.GUI
{
    public partial class Ranking_teste : Form
    {
        public Ranking_teste()
        {
            InitializeComponent();
        }


        internal void Configure(List<Edicao.Ranking> rankings)
        {
            var dificuldades = new List<string>();

            foreach (var r in rankings)
            {
                DataTable dt = null;

                if (!dificuldades.Contains(r.Dificuldade))
                {
                    //adiciona TabPage, DataGridView, DataTable relacionados à dificuldade
                    var tp = new TabPage()
                    {
                        Name = r.Dificuldade,
                        Text = r.Dificuldade
                    };

                    dt = new DataTable();
                    dt.Columns.Add("Posição", typeof(int));
                    dt.Columns.Add("Nome", typeof(string));
                    dt.Columns.Add("Pontuação", typeof(double));

                    var dgv = new DataGridView() {
                        DataSource = dt,
                        Name = r.Dificuldade,
                        Location = new Point(162, 105),
                        Size = new Size(460, 242),
                        ReadOnly = true,
                        AllowUserToAddRows = false,
                        AllowUserToDeleteRows = false,
                        AllowUserToResizeColumns = false,
                        AllowUserToResizeRows = false,
                        Dock = DockStyle.Fill,
                        AutoSize = true,
                        AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,
                        ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize,
                        RowHeadersVisible = false,
                        SelectionMode = DataGridViewSelectionMode.FullRowSelect
                    };

                    tp.Controls.Add(dgv);
                    this.dificuldadeTabControl.TabPages.Add(tp);

                    dificuldades.Add(r.Dificuldade);
                }

                dt = dt ?? ((DataTable)((DataGridView)this.dificuldadeTabControl.TabPages[r.Dificuldade].Controls[r.Dificuldade]).DataSource);

                //adiciona conteudo à DataTable
                dt.Rows.Add(r.Posicao, r.Nome, r.Pontuacao);
            }
        }

        private void SairButton_Click(object sender, EventArgs e)
        {
            this.dificuldadeTabControl.TabPages.Clear();
            ControladorGUI.Instance.ExibirMenuInicial();
        }

        private void Ranking_teste_FormClosed(object sender, FormClosedEventArgs e)
        {
            ControladorGUI.Instance.Exit();
        }
    }
}
